/* class App {
  handleClick() {
    console.log(this) // app 实例
  }
}
const app = new App()
app.handleClick() */

/* class App {
  handleClick() {
    // 类中的方法是开启了严格模式的
    console.log(this) // undefined
  }
}
const app = new App()
const onClick = app.handleClick
onClick() // window.onClick() */

/* class App {
  // 看一下这里的 this 是谁？
  handleClick = () => {
    // 箭头函数和谁调用没有半毛钱关系，定义的时候就已经注定了，是父级
    console.log(this)
  }
}
const app = new App()
const onClick = app.handleClick
onClick() // window.onClick() */

/* class App {
  // 把 this 给了一个实例属性 tempThis
  tempThis = this // #1
  handleClick = () => {
    // 箭头函数和谁调用没有半毛钱关系，定义的时候就已经注定了，是父级
    console.log(this)
  }
}
const app = new App()
// 如果相等，就能证明 app.tempThis 是实例，也就是 #1 处的 this 是实例
console.log(app.tempThis === app) */

class App {
  handleClick = () => {
    console.log(this) // 实例
  }
}
const app = new App()
const onClick = app.handleClick
onClick()
